package com.ruoyi.settled.mapper;

import com.ruoyi.settled.domain.SettlementDetail;
import com.ruoyi.settled.domain.SettlementRecord;

import java.util.List;

/**
 * 结算记录Mapper接口
 * 
 * @author huangchen
 * @date 2025-01-05
 */
public interface SettlementRecordMapper 
{
    /**
     * 查询结算记录
     * 
     * @param settlementCode 结算记录主键
     * @return 结算记录
     */
    public SettlementRecord selectSettlementRecordBySettlementCode(String settlementCode);

    /**
     * 查询结算记录列表
     * 
     * @param settlementRecord 结算记录
     * @return 结算记录集合
     */
    public List<SettlementRecord> selectSettlementRecordList(SettlementRecord settlementRecord);

    /**
     * 新增结算记录
     * 
     * @param settlementRecord 结算记录
     * @return 结果
     */
    public int insertSettlementRecord(SettlementRecord settlementRecord);

    /**
     * 修改结算记录
     * 
     * @param settlementRecord 结算记录
     * @return 结果
     */
    public int updateSettlementRecord(SettlementRecord settlementRecord);

    /**
     * 删除结算记录
     * 
     * @param settlementCode 结算记录主键
     * @return 结果
     */
    public int deleteSettlementRecordBySettlementCode(String settlementCode);

    /**
     * 批量删除结算记录
     * 
     * @param settlementCodes 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSettlementRecordBySettlementCodes(String[] settlementCodes);

    /**
     * 批量删除结算详情
     * 
     * @param settlementCodes 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSettlementDetailBySettlementCodes(String[] settlementCodes);
    
    /**
     * 批量新增结算详情
     * 
     * @param settlementDetailList 结算详情列表
     * @return 结果
     */
    public int batchSettlementDetail(List<SettlementDetail> settlementDetailList);
    

    /**
     * 通过结算记录主键删除结算详情信息
     * 
     * @param settlementCode 结算记录ID
     * @return 结果
     */
    public int deleteSettlementDetailBySettlementCode(String settlementCode);

    /**
     * 根据合作方编码获取结算记录信息
     *
     * @param partnerCode 合作方编码
     * @return 结果
     */
    public List<SettlementRecord> selectSettlementRecordByPartnerCode(String partnerCode);





     public    int  updateRecordStatus(SettlementRecord settlementRecord);
}


